package org.stvd.service.oauth;

import org.stvd.core.dto.QueryResult;
import org.stvd.entities.oauth.OauthClientDetails;
import org.stvd.service.base.BaseService;

/**
 * Oauth客户端Service接口类
 * @author houzx
 */
public interface OauthClientDetailsService extends BaseService<OauthClientDetails>{

    /**
     * 查询Oauth客户端信息集合
     * @param start 起始数
     * @param limit 限制数
     * @param clientId 客户端ID
     * @param clientName 客户端名称
     * @return
     */
    QueryResult<OauthClientDetails> queryOauthClientResult(int start, int limit, String clientId, String clientName);

    /**
     * 查询当前redirectUri是否匹配
     * @param clientId ClientID
     * @param redirectUri RedirectUri
     * @return
     */
    boolean hasOauthRedirectUri(String clientId, String redirectUri);
    
    /**
     * 查询当前clientId是否存在
     * @param clientId ClientID
     * @return
     */
    boolean hasOauthClientId(String clientId);
    
    /**
     * 更新客户端密钥
     * @param clientId
     */
    void UpdateclientSecret(String clientId);
    
    /**
     * 生成客户端密钥
     * @return
     */
    String generateSecret();

}
